/**
 * 防抖
 * @param {Function} fn 回调函数
 * @param {number} dealy 等待时间
 * */
export function debounce(fn, dealy) {
	let timer = null;
	return function() {
		if(timer){
			clearTimeout(timer)
		}
		timer=setTimeout(fn,dealy)
	}
}

/**
 * 节流
 * @param {Function} fn 回调函数
 * @param {number} dealy 等待时间
 * */
export function throttle(fn, dealy) {
	let flag = true;
	return function() {
		if(!flag){
			return false;
		}
		flag=false;
		setTimeout(()=>{
			fn();
			flag=true;
		},dealy)
	}
}

/**
 * 拷贝数据
 * @param {Object} obj 对象
 * */
 export function deepClone(obj) {
     //判断拷贝的要进行深拷贝的是数组还是对象，是数组的话进行数组拷贝，对象的话进行对象拷贝
     var objClone = Array.isArray(obj) ? [] : {};
     //进行深拷贝的不能为空，并且是对象或者是
     if (obj && typeof obj === "object") {
         for (let key in obj) {
             if (obj.hasOwnProperty(key)) {
                 if (obj[key] && typeof obj[key] === "object") {
                     objClone[key] = deepClone(obj[key]);
                 } else {
                     objClone[key] = obj[key];
                 }
             }
         }
     }
     return objClone;
 }
 
 /**
  * 拷贝数据
  * @param { Array } arr json数据
  * @param { String } key 键
  * */
  export function getJsonValArray(arr,key){
	  let newArr=[];
	  arr.forEach(item=>{
		  if(item[key]){
			 newArr.push(item[key]); 
		  }
	  })
	  return newArr
  }